<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    /**
     * подключаем модульную директорию
     */
    protected function _initAutoload() {

        $front = $this->bootstrap("frontController")->frontController;
        $front->addModuleDirectory(APPLICATION_PATH . '/modules/');        
    }
    
    /**
     * подключаем плагины
     */
    protected function _initPlugins() {
        $front = Zend_Controller_Front::getInstance();
        $front->registerPlugin(new Application_Plugin_Acl());
    }
    
    /*
     * локализация проекта
     */
    protected function _initTranslate()
    {
        //в качесте адаптера перевода выбираем 'Gettext' и указываем директорию,
        //где хранятся языки
        $translate = new Zend_Translate('Gettext', APPLICATION_PATH . '/languages',
            null, array('scan' => Zend_Translate::LOCALE_FILENAME));                
        // если язык указан явно в URL после адреса сайта, берем его оттуда
        if (preg_match("/^\/([a-zA-Z]{2})($|\/)/", $_SERVER['REQUEST_URI'], $matches)) {
            $lang = $matches[1];
        } else {
            //иначе определяем язык браузера и берем локаль оттуда
            $locale = new Zend_Locale(Zend_Locale::BROWSER);
            $lang = $locale->getLanguage();    
        }
        // если полученный язык недоступен, устанавливаем дефолтный - английский
        if (!$translate->isAvailable($lang)) {             
             $lang = 'en';
        }            
        // устанавливаем выбранный язык
        $translate->setLocale($lang);
        //добавляем после домена выбранную локаль        
        //$this->bootstrap('FrontController');
        $front = $this->getResource('FrontController');
        $front->setBaseUrl('/' . $lang . '/');        
        // сохранение в реестре экземпляра Zend_Translate для дальнейшего использования
        Zend_Registry::set('Zend_Translate', $translate); 
        //получаем текущую локаль
        $locale = $translate->getLocale();        
        //ищем нужный файл перевода
        $source = APPLICATION_PATH . '/languages/'.$locale.'.mo';        
        //и грузим страницу
        $translate->addTranslation($source, $locale);        
    }
}

